# coding:utf-8
from __future__ import annotations

from typing import List, Optional

from pydantic import BaseModel


# noinspection PyPep8Naming, PyShadowingNames
class FieldResponseDataMessage2(BaseModel):
    ...


# noinspection PyPep8Naming, PyShadowingNames
class GetAuthApiV1JwtRequest(BaseModel):
    Authorization: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class GetAuthApiV1JwtResponse(BaseModel):
    code: Optional[int]
    data: Optional[str]
    error: Optional[str]
    token: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class LarkText(BaseModel):
    tag: Optional[str]
    content: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class LarkValue(BaseModel):
    type: Optional[str]
    org: Optional[str]
    lifecycleId: Optional[str]
    sendItemId: Optional[str]
    alertGroupId: Optional[str]
    group_users: Optional[str]
    rule_name: Optional[str]
    psm: Optional[str]
    cluster: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class GetJWKSReq(BaseModel):
    ...


# noinspection PyPep8Naming, PyShadowingNames
class JWKObj(BaseModel):
    alg: Optional[str]
    e: Optional[str]
    kid: Optional[str]
    kty: Optional[str]
    n: Optional[str]
    use: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class OAuthTokenReq(BaseModel):
    jwt: Optional[str]
    client_id: Optional[str]
    client_secret: Optional[str]
    grant_type: Optional[str]
    code: Optional[str]
    refresh_token: Optional[str]
    username: Optional[str]
    redirect_uri: Optional[str]
    auth_type: Optional[str]
    lark_auth_req: Optional[bool]
    scope: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class OAuthTokenResp(BaseModel):
    access_token: Optional[str]
    token_type: Optional[str]
    expires_in: Optional[int]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class ShiftOneSiteJwtResp(BaseModel):
    access_token: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class ShiftOneSiteJwtReq(BaseModel):
    jwt: Optional[str]
    target_region: Optional[str]
    p_jwt: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class PublicKeyReq(BaseModel):
    ...


# noinspection PyPep8Naming, PyShadowingNames
class FieldResponse(BaseModel):
    code: Optional[int]
    data: Optional[FieldResponseDataMessage2]
    error: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class LarkHeader(BaseModel):
    title: Optional[LarkText]
    template: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class LarkTextDiv(BaseModel):
    tag: Optional[str]
    text: Optional[LarkText]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class LarkButton(BaseModel):
    tag: Optional[str]
    text: Optional[LarkText]
    type: Optional[str]
    value: Optional[LarkValue]
    webhook: Optional[str]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class GetJWKSResp(BaseModel):
    pks: Optional[List[JWKObj]]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class AuthorizeHandlerLarkResp(BaseModel):
    header: Optional[LarkHeader]
    elements: Optional[List[LarkTextDiv]]
    ...


# noinspection PyPep8Naming, PyShadowingNames
class AuthorizeHandlerLarkReq(BaseModel):
    action: Optional[LarkButton]
    open_id: Optional[str]
    open_message_id: Optional[str]
    tenant_key: Optional[str]
    token: Optional[str]
    user_id: Optional[str]
    challenge: Optional[str]
    open_chat_id: Optional[str]
    ...
